package com.yonyou.wdt.qimenmodel.qimencloud.api.scenehu3cgwt0tc.request;



import com.yonyou.wdt.qimenmodel.qimencloud.api.scenehu3cgwt0tc.response.WdtRefundOrderQueryResponse;
import com.yonyou.wdt.qimenmodel.taobao.api.ApiRuleException;
import com.yonyou.wdt.qimenmodel.taobao.api.BaseTaobaoRequest;
import com.yonyou.wdt.qimenmodel.taobao.api.Constants;
import com.yonyou.wdt.qimenmodel.taobao.api.internal.util.RequestCheckUtils;
import com.yonyou.wdt.qimenmodel.taobao.api.internal.util.TaobaoHashMap;
import lombok.Data;

import java.util.Map;

/**
 * TOP API(QimenCloud): wdt.stockin.order.query.refund request
 * 
 * @author top auto create
 * @since 1.0, 2018.01.03
 */
@Data
public class WdtRefundOrderQueryRequest extends BaseTaobaoRequest<WdtRefundOrderQueryResponse> {
     
     

	/** 
	* 秘钥
	 */
	private String appkey;
	/** 
	* 结束日期
	 */
	private String endTime;

	/** 
	* 页号,默认0，从0页开始。
	 */
	private Long pageNo;

	/** 
	* 分页大小（最大不超过30条，默认返回30条）
	 */
	private Long pageSize;

	/** 
	* 卖家账号
	 */
	private String sid;

	/** 
	* 开始日期
	 */
	private String startTime;

	/** 
	* 退换单处理状态 5 补款 10已取消 20待审核 30已同意 40已拒绝 50待财审 60待收货
	 * 63待推送 64推送失败 65委外待收货 69待收货(已结算) 70部分到货 71部分到货(已结算) 80待结算 90已完成
	 */
	private Long processStatus;
	private Long timeType;

	private String shopNo;
	
	private String stockinNo;
	
	private String srcOrderNo;

	//Erp内退换单编号，传该字段可以不传时间
	private String refundNo;
	//平台原始退换单号，传该字段可以不传时间
	private String srcRefundNo;

	//系统订单编号，传该字段可以不传时间
	private String tradeNo;

	//原始单号，传该字段可以不传时间
	private String tid;

	//退回物流单号
	private String logisticsNo;
	private String shopNos;

	public Long getProcessStatus() {
		return processStatus;
	}

	public void setProcessStatus(Long processStatus) {
		this.processStatus = processStatus;
	}

	public Long getTimeType() {
		return timeType;
	}

	public void setTimeType(Long timeType) {
		this.timeType = timeType;
	}

	public String getRefundNo() {
		return refundNo;
	}

	public void setRefundNo(String refundNo) {
		this.refundNo = refundNo;
	}

	public String getSrcRefundNo() {
		return srcRefundNo;
	}

	public void setSrcRefundNo(String srcRefundNo) {
		this.srcRefundNo = srcRefundNo;
	}

	public String getTradeNo() {
		return tradeNo;
	}

	public void setTradeNo(String tradeNo) {
		this.tradeNo = tradeNo;
	}

	public String getTid() {
		return tid;
	}

	public void setTid(String tid) {
		this.tid = tid;
	}

	public String getLogisticsNo() {
		return logisticsNo;
	}

	public void setLogisticsNo(String logisticsNo) {
		this.logisticsNo = logisticsNo;
	}

	public String getShopNos() {
		return shopNos;
	}

	public void setShopNos(String shopNos) {
		this.shopNos = shopNos;
	}

	public void setAppkey(String appkey) {
		this.appkey = appkey;
	}

	public String getAppkey() {
		return this.appkey;
	}

	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}

	public String getEndTime() {
		return this.endTime;
	}

	public void setPageNo(Long pageNo) {
		this.pageNo = pageNo;
	}

	public Long getPageNo() {
		return this.pageNo;
	}

	public void setPageSize(Long pageSize) {
		this.pageSize = pageSize;
	}

	public Long getPageSize() {
		return this.pageSize;
	}

	public void setSid(String sid) {
		this.sid = sid;
	}

	public String getSid() {
		return this.sid;
	}

	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}

	public String getStartTime() {
		return this.startTime;
	}


     public String getApiMethodName() {
        return "wdt.refund.query";
     }

     private String topContentType ;

     public String getTopContentType() {
        return topContentType;
     }

     public void setTopContentType(String topContentType) {
         this.topContentType = topContentType;
     }

     private String topResponseType = Constants.RESPONSE_TYPE_QIMEN;

     public String getTopResponseType() {
        return topResponseType;
     }

     public void setTopResponseType(String topResponseType) {
        this.topResponseType = topResponseType;
     }

    private String topApiVersion = "2.0";

     public String getTopApiVersion() {
        return this.topApiVersion;
     }

     public void setTopApiVersion(String topApiVersion) {
        this.topApiVersion = topApiVersion;
     }

     private String topApiFormat ;

     public String getTopApiFormat() {
     	return this.topApiFormat;
     }

     public void setTopApiFormat(String topApiFormat) {
     	this.topApiFormat = topApiFormat;
     }
     
     public Map<String, String> getTextParams() {		
		TaobaoHashMap txtParams = new TaobaoHashMap();
		txtParams.put("appkey", this.appkey);
		 txtParams.put("process_status", getProcessStatus());
		 txtParams.put("time_type", this.timeType);
		 txtParams.put("start_time", this.startTime);
		txtParams.put("end_time", this.endTime);
		 txtParams.put("page_size", this.pageSize);
		 txtParams.put("shop_no", getShopNo());
		txtParams.put("page_no", this.pageNo);
		txtParams.put("refund_no", this.refundNo);
		txtParams.put("src_refund_no", this.srcRefundNo);
		txtParams.put("trade_no", this.tradeNo);
		txtParams.put("tid", this.tid);
		txtParams.put("logistics_no", this.logisticsNo);
		txtParams.put("sid", this.sid);
		txtParams.put("shop_nos", this.shopNos);
		if(this.udfParams != null) {
			txtParams.putAll(this.udfParams);
		}
		return txtParams;
	}
     
     public Class<WdtRefundOrderQueryResponse> getResponseClass() {
		return WdtRefundOrderQueryResponse.class;
	}

     public void check() throws ApiRuleException {
		//RequestCheckUtils.checkNotEmpty(endTime, "endTime");
		RequestCheckUtils.checkNotEmpty(sid, "sid");
		//RequestCheckUtils.checkNotEmpty(startTime, "startTime");
     }

	public String getShopNo() {
		return shopNo;
	}

	public void setShopNo(String shopNo) {
		this.shopNo = shopNo;
	}

	public String getStockinNo() {
		return stockinNo;
	}

	public void setStockinNo(String stockinNo) {
		this.stockinNo = stockinNo;
	}

	public String getSrcOrderNo() {
		return srcOrderNo;
	}

	public void setSrcOrderNo(String srcOrderNo) {
		this.srcOrderNo = srcOrderNo;
	}
     


}